#!/system/bin/sh

# 定义依赖脚本路径（根据实际存放位置调整）
DATA_LOADER="./load_ad_data.sh"       # 数据加载工具
FILE_UTILS="./file_utils.sh"          # 文件操作工具（含create_with_cleanup）
INSTALL_CHECKER="./install_check.sh"  # 安装检查工具（含check_is_onekey_install等）

# 导入依赖脚本
import_deps() {
    deps=("$DATA_LOADER" "$FILE_UTILS" "$INSTALL_CHECKER")
    for dep in "${deps[@]}"; do
        if [ ! -f "$dep" ]; then
            echo "错误：依赖脚本 $dep 不存在，无法继续"
            exit 1
        fi
        # 导入脚本（使用.命令确保变量/函数在当前环境生效）
        . "$dep" || {
            echo "错误：导入 $dep 失败"
            exit 1
        }
    done
    echo "所有依赖脚本导入成功"
}
# 等待安卓系统启动完成
wait_for_boot() {
    # 超时时间（单位：秒），避免无限等待（建议设为300秒即5分钟）
    local timeout=300
    # 检测间隔（单位：秒），避免频繁检测占用资源
    local interval=5
    # 已等待时间
    local elapsed=0
    # 循环检测sys.boot_completed属性
    while [ "$(getprop sys.boot_completed)" != "1" ]; do
        # 若超过超时时间，退出等待（可根据需求调整是否强制继续）
        if [ $elapsed -ge $timeout ]; then
            echo "等待系统启动超时，可能未正常启动"
            return 1  # 超时返回错误码
        fi
        # 等待interval秒后再次检测
        sleep $interval
        elapsed=$((elapsed + interval))
    done
    echo "系统已启动完成"
    return 0
}

# 主逻辑（去掉一键安装检查，仅判断是否安装）
main() {
    import_deps

    # 加载应用数据
    load_ad_data || {
        echo "主流程终止：数据加载失败"
        exit 1
    }


    # 执行等待逻辑，若等待成功则继续后续操作
    if wait_for_boot; then
        # ##############################
        # 在这里编写需要在系统启动后执行的命令
        # 例如：启动服务、修改文件、设置属性等
        # ##############################
     # 遍历所有应用
        ma_total=$(echo "$APPS" | wc -w)
        echo -e "\n开始处理所有应用（共 $ma_total 个）..."
        ma_index=0
        ma_current_pkg=""

        for ma_current_pkg in $APPS; do
            ma_index=$((ma_index + 1))
            echo -e "\n=== 处理第 $ma_index/$ma_total 个应用：$ma_current_pkg ==="

            # 仅检查应用是否安装（去掉一键安装判断）
            if ! check_package_installed "$ma_current_pkg"; then
                echo "跳过：应用 $ma_current_pkg 未安装"
                continue
            fi
            echo "应用 $ma_current_pkg 已安装，开始处理广告文件夹..."

            # 获取广告文件夹列表并处理
            ma_folders=$(get_ad_folders "$ma_current_pkg")
            if [ -z "$ma_folders" ]; then
                echo "警告：应用 $ma_current_pkg 无广告文件夹配置，跳过"
                continue
            fi

            # 逐个处理文件夹
            echo "处理广告文件夹（共 $(echo "$ma_folders" | wc -l) 个）："
            echo "$ma_folders" | while read -r ma_folder; do
                if [ -z "$ma_folder" ]; then
                    continue
                fi
                echo -e "\n--- 处理文件夹：$ma_folder ---"
                delete_path "$ma_folder"
                if [ $? -eq 0 ]; then
                    echo "文件夹 $ma_folder 处理成功"
                else
                    echo "文件夹 $ma_folder 处理失败"
                fi
            done
        done

    else
        # 等待超时后的处理（可选）
        echo "等待失败，退出脚本"
        exit 1
    fi



    

    echo -e "\n所有应用处理完毕"
}


# 启动主逻辑
main
